; long long int negar(long long int a)

global negar

section .text

negar:
	push ebp
	mov ebp, esp
	push esi
	push edi
	push ebx
	
	mov eax, [ebp + 8] ; Muevo a eax la parte baja de a.
	mov edx, [ebp + 12] ; Muevo a edx la parte alta de a.
	
	; Lo que tengo que hacer es un NEG, pero como el numero que tengo es largo, tengo que realizarlo manualmente.
	; Hago el complemento a dos del parametro que me pasan.
	
	; Primero realizo el complemento a uno de la parte alta y la parte baja.
	not eax
	not edx
	
	; Sumo 1 a la parte baja y despues sumo el carry a la parte alta.
	add eax, 1
	adc edx, 0

fin:
	pop ebx
	pop edi
	pop esi
	pop ebp
	ret
